//package hbase;
//
//import com.ruoyi.hadoop.hbase.HBaseUtils;
//import org.apache.hadoop.hbase.Cell;
//import org.apache.hadoop.hbase.CellScanner;
//import org.apache.hadoop.hbase.CellUtil;
//import org.apache.hadoop.hbase.client.*;
//import org.apache.hadoop.hbase.util.Bytes;
//import org.junit.After;
//import org.junit.Before;
//import org.junit.Test;
//
//import java.io.IOException;
//import java.util.*;
//
//public class HbaseV3 {
//
//    private Table table;
//
//    @Before
//    public void before() {
//        table = HBaseUtils.getTable();
//    }
//
//    /**
//     * put 'ns1:t1', 'r1', 'c1', 'value'
//     */
//    @Test
//    public void put1() throws IOException {
//        //1. 创建Put对象
//        Put put = new Put(Bytes.toBytes("001"));
//        //2. 添加列数据
//        put.addColumn(Bytes.toBytes("base_info"), Bytes.toBytes("name"), Bytes.toBytes("lixi"));
//        //3. 插入一条记录
//        table.put(put);
//    }
//
//    @Test
//    public void put2() throws IOException {
//        //1. 创建Put对象
//        Put put1 = new Put(Bytes.toBytes("005"));
//        Put put2 = new Put(Bytes.toBytes("006"));
//        //2. 添加列数据
//        put1.addColumn(Bytes.toBytes("base_info"), Bytes.toBytes("height"), Bytes.toBytes(180));
//        put2.addColumn(Bytes.toBytes("base_info"), Bytes.toBytes("height"), Bytes.toBytes(270));
//
//
//        List<Put> plist = new ArrayList<>();
//        plist.add(put1);
//        plist.add(put2);
//        //3. 插入一条记录
//        table.put(plist);
//    }
//
//    @Test
//    public void get1() throws IOException {
//        //1. 创建get对象
//        Get get = new Get(Bytes.toBytes("001"));
//        //2. 查询数据，返回结果对象
//        Result result = table.get(get);
//        //3. 查询指定列簇
//        NavigableMap<byte[], byte[]> navigableMap = result.getFamilyMap(Bytes.toBytes("base_info"));
//        //4. 遍历
//        Set<Map.Entry<byte[], byte[]>> entries = navigableMap.entrySet();
//        for(Map.Entry<byte[], byte[]> entry : entries) {
//            System.out.println(new String(entry.getKey()) +"--->" + new String(entry.getValue()) );
//        }
//    }
//
//    @Test
//    public void get2() throws IOException {
//        //1. 创建get对象
//        Get get = new Get(Bytes.toBytes("001"));
//        //2. 查询数据，返回结果对象
//        Result result = table.get(get);
//        //3. 获取cell的扫描器
//        CellScanner cellScanner = result.cellScanner();
//        //4. 遍历扫描器
//        while(cellScanner.advance()) {
//            //5. 获取单词扫描的Cell
//            Cell cell = cellScanner.current();
//            System.out.println(new String(cell.getFamilyArray(),cell.getFamilyOffset(), cell.getFamilyLength())); // 列簇
//            System.out.println(new String(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength())); // 列名
//            System.out.println(new String(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())); // 列值
//        }
//    }
//
//    @Test
//    public void get3() throws IOException {
//        //1. 创建get对象
//        Get get = new Get(Bytes.toBytes("001"));
//        //2. 查询数据，返回结果对象
//        Result result = table.get(get);
//        HBaseUtils.showResult(result);
//    }
//
//    @Test
//    public void scan() throws IOException {
//        //1. 创建Scan对象
//        Scan scan = new Scan();
//        //2. 通过scan获取到结果的扫描器
//        ResultScanner scanner = table.getScanner(scan);
//        //3. 使用扫描器扫描所有的表信息
//        Iterator<Result> iterator = scanner.iterator();
//        //4. 迭代
//        while(iterator.hasNext()) {
//            //5. 获取到当前的result对象
//            Result result = iterator.next();
//            HBaseUtils.showResult(result);
//        }
//    }
//
//    @Test
//    public void delete() throws IOException {
//        Delete delete = new Delete(Bytes.toBytes("003"));
//        table.delete(delete);
//    }
//
//
//
//    @After
//    public void after() {
//        HBaseUtils.close(table);
//    }
//}
